home *** CD-ROM | disk | FTP | other *** search
- **********************************************************************
- * program netspl.s residenter modul zur umlenkung *
- * pm 10/92 des gemdostraps 1. implementiert *
- * (pure-c) druck-dämon für *.pco-files. *
- **********************************************************************
-
- export path
- export flag
- export oldgem
- export grpgem
- export fhandle
-
- .text
-
- *-------------------------------*
- * residenter programmteil *
- *-------------------------------*
- dc.b "XBRANSPO"
-
- oldgem: dc.l 0
-
- grpgem: tst.w flag
- bne dogem
-
- move (a7),d0 * test user/super mode
- btst #13,d0
- bne.b sup
- move.l usp,a0
- bra.b tst
-
- sup: lea 6(a7),a0
- tst: cmp.w #$3c,(a0) * is it Fcreate
- beq.b openfile
- cmp.w #$3d,(a0) * or Fopen
- bne tryclose
-
- openfile:
- move.l 2(a0),a0 * test filename
-
- move.l a0,a1
- lp1: tst.b (a1)+
- bne.b lp1
-
- cmp.b #'.',-5(a1)
- bne dogem
- cmp.b #'P',-4(a1)
- bne dogem
- cmp.b #'C',-3(a1)
- bne dogem
- cmp.b #'O',-2(a1)
- bne dogem
-
- lea.l path,a1
- lp2: move.b (a0)+,(a1)+
- bne.b lp2
-
- move.l 2(a7),retadr1
- move.l #myret1,2(a7)
- move.l oldgem,-(a7)
- rts
-
- myret1:
- cmp.w #6,d0
- bmi.s skip
- move.w d0,fhandle
- skip:
- move.l retadr1,-(a7)
- rts
-
- tryclose:
- cmp.w #$3e,(a0) * Fclose
- bne dogem * compare with saved handle
-
- move.w 2(a0),d0
- cmp.w fhandle,d0
- bne dogem
-
- cmp.w #6,fhandle
- bmi dogem
- move.l 2(a7),retadr
- move.l #myret2,2(a7)
- bra.s dogem
- myret2:
- addq.w #1,flag
- move.w #-100,fhandle
- move.l retadr,-(a7)
- rts
-
- dogem: move.l oldgem,-(a7)
- rts
-
- .data
-
- retadr: dc.l 0
- retadr1: dc.l 0
- flag: dc.w 0
- fhandle: dc.w 0
- path: ds.b 128
-
- end
-
-